home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / Z-Misc Series / (k)za.d64 / restore'lbl.proc < prev    next >
Text File  |  2007-03-01  |  1KB  |  45 lines

  1. 9000 //
  2. 9010 PROC RESTORE'LABEL(NAME$) CLOSED
  3. 9020 LABEL'LENGTH:=LEN(NAME$)
  4. 9030 FOUND:=FALSE
  5. 9040 ADDRESS:=PEEK(60)+256*PEEK(61)
  6. 9050 NAME'END:=PEEK(62)+256*PEEK(63)
  7. 9060 COUNTER:=0
  8. 9070 REPEAT 
  9. 9080 THIS'LENGTH:=PEEK(ADDRESS)
  10. 9090 IF THIS'LENGTH=LABEL'LENGTH THEN
  11. 9100 FOUND:=TRUE
  12. 9110 FOR I:=1 TO LABEL'LENGTH DO
  13. 9120 IF PEEK(ADDRESS+I)<>ORD(NAME$(I)) THEN FOUND:=FALSE
  14. 9130 ENDFOR I
  15. 9140 ENDIF 
  16. 9150 IF FOUND=FALSE THEN
  17. 9160 ADDRESS:+THIS'LENGTH+1
  18. 9170 COUNTER:+1
  19. 9180 ENDIF 
  20. 9190 UNTIL FOUND=TRUE OR ADDRESS>NAME'END
  21. 9200 IF FOUND=FALSE THEN
  22. 9210 PRINT 
  23. 9220 PRINT "┼RROR! ╠ABEL ",NAME$," NOT FOUND."
  24. 9230 ELSE 
  25. 9240 ADDRESS:=PEEK(58)+256*PEEK(59)+COUNTER*5
  26. 9250 IF PEEK(ADDRESS)<>19 THEN
  27. 9260 PRINT 
  28. 9270 PRINT "┼RROR! ╠ABEL ",NAME$," NOT FOUND."
  29. 9280 END 
  30. 9290 ELSE 
  31. 9300 DATA'ADDRESS:=PEEK(ADDRESS+1)+256*PEEK(ADDRESS+2)+5
  32. 9310 IF PEEK(DATA'ADDRESS+3)=170 THEN
  33. 9320 POKE 251,DATA'ADDRESS MOD 256
  34. 9330 POKE 252,DATA'ADDRESS DIV 256
  35. 9340 POKE 253,4
  36. 9350 ELSE 
  37. 9360 PRINT 
  38. 9370 PRINT "┼RROR! ╠ABEL ",NAME$," NOT FOLLOWED BY"
  39. 9380 PRINT "DATA STATEMENT."
  40. 9390 END 
  41. 9400 ENDIF 
  42. 9410 ENDIF 
  43. 9420 ENDIF 
  44. 9430 ENDPROC RESTORE'LABEL
  45.